The capability to automatically identity similar songs is a capability with many applications. For example, a music lover may desire to identify cover versions of a song in order to enjoy other interpretations of that song. As another example, copyright holders may want to be able to identify different versions of their songs, copies of their songs, etc., in order to insure proper copyright license revenue. As yet another example, users may want to be able to identify songs with similar sound to a particular song. As still another example, a user listening to a particular song may desire to know the identity of the song or artist performing the song.
While it is generally easy for a human to identify two songs that are similar, automatically doing so with a machine is much more difficult. For example, the two songs can be played in a different key, such that conventional fingerprinting is not accurate. As another example, the two songs can be played at different tempos. As yet another example, a performer playing a cover version may add, remove or rearrange parts of the song. All of this can make it hard to identify a cover version of a song. With millions of songs readily available, having humans compare songs manually is practically impossible. Therefore, there is a need for mechanisms that can automatically identify similar songs.